package de.global42.clubapp.ejbs;

import java.util.Date;
import java.util.Map;
import java.util.Set;

import javax.ejb.Remote;

import de.global42.clubapp.model.Mission;

/**
 * @author lutz
 *
 */
@Remote
public interface ClientMissionHandler {

	/**
	 * Get a set of all "Missions" relevant for the specific client
	 * (depending on his choice of venues) mapped by the associated venue id.
	 * 
	 * @param clientId : {@link String} The specific client's id
	 * @param lastUpdated : {@link Date} The date this client last updated his missions
	 * @return {@link Map}<{@link String},{@link Set}<{@link Mission}>>
	 */
	public Map<Long, Set<Mission>> getMissions(Long clientId, Date lastUpdated);

	/**
	 * Get a map of all missions and their status for a specific client
	 * 
	 * @param clientId : {@link String} The specific client's id
	 * @return {@link Map} <{@link String}[Mission id], AnonymousType[Counter,Target]>
	 */
	public Map<Long, Object> getClientMissions(Long clientId);

	/**
	 * @param clientId
	 * @param validationCode
	 * @return
	 */
	public String enterValidationCode(Long clientId, String validationCode, Long venueId);
	
}
